package com.cfg.domain;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.framework.config.BigDecimalSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 项目信息
 */
@Data
@ApiModel("项目信息")
@TableName("v_project")
public class ClaimProjectShow {

    private static final long serialVersionUID = 1L;

    /** 项目ID */
    @ApiModelProperty("项目ID")
    private String projectId;

    /** 项目名称 */
    @ApiModelProperty("项目名称")
    private String name;

    /** 负责人名称 */
    @ApiModelProperty("负责人名称")
    private String chargerName;

    /** 项目编号 */
    @ApiModelProperty("项目编号")
    private String code;

    /** 项目类型 */
    @ApiModelProperty("项目类型")
    private String projectClass;

    /** 负责人id */
    @ApiModelProperty("负责人id")
    private String chargerCode;

    /** 负责人工号 */
    @ApiModelProperty("负责人工号")
    @TableField(exist = false)
    private String account;

    /** 外拨金额 */
    @ApiModelProperty("外拨金额")
    @JsonSerialize(using = BigDecimalSerializer.class)
    @TableField(exist = false)
    private BigDecimal outFee;

    /** 合同金额 */
    @ApiModelProperty("合同金额")
    @JsonSerialize(using = BigDecimalSerializer.class)
    private BigDecimal feeAuthorize;

    /** 单位id */
    @ApiModelProperty("单位id")
    private String unitId;

    /** 单位名称 */
    @ApiModelProperty("合同所属单位名称")
    @TableField(exist = false)
    private String unitName;

    @ApiModelProperty("负责人所属单位名称")
    @TableField(exist = false)
    private String chargerUnitName;

    @ApiModelProperty("负责人所属单位id")
    @TableField(exist = false)
    private String chargerUnitId;

    /** 开始日期 */
    @ApiModelProperty("开始日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate beginDate;

    /** 计划完成日期 */
    @ApiModelProperty("计划完成日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDate planEndDate;

    /** 类型:outbound */
    @ApiModelProperty("类型:outbound外拨")
    @TableField(exist = false)
    private String type;

    @ApiModelProperty("项目状态id，0进行1完成2中止")
    private String projectStatusId;

}
